Julia数据科学系列-Distances包

Distances.jl

https://github.com/JuliaStats/Distances.jl

https://cloud.tencent.com/developer/article/1800908

Euclidean distance

欧式距离

  • 两个点的线段长度, \( D(x,y) = \sqrt{\sum^n_{i=1}(x_i - y_i)^2} \)

  • 也叫毕达哥拉斯距离(使用毕达哥拉斯定理从笛卡尔坐标计算得来)

  • 适用: 低维数据且向量大小重要的情况

  • 缺点:

  • 尺度会根据特征单位发生变化, 所以需要先对数据进行归一化处理

  • 维数灾难: 维数增大, 欧氏距离的作用降低

Squared Euclidean distance

平方欧氏距离: 许多应用中, 在计算欧氏距离的时候省略最后的开平方比较方便。

\( d^2(x,y) = \sum^n_{i=1}(x_i - y_i)^2 \)
  • 平方欧式距离在统计中很重要, 用于最小二乘法。

  • 平方距离在优化理论中是首选, 因为允许使用凸分析。

Periodic Euclidean distance

我很少用到, 略。

Cityblock distance/Manhattan distance

\( D(a,b) = \sum^k_{j=1}|a_j-b_j| \)

Total variation distance

总变差距离, 主要应用在概率论中, 也叫统计距离(statistical distance)变差距离(variation distance)

定义 设\(F\)是样本空间Ω的一个子集上的σ-代数, 两个概率测度 \(P\) 和 \(Q\) 在 \(F\) 上的全变差距离定义为:

\(D(P,Q) =\underset{A \in F}{sup} {|P(A)-Q(A)|}\)

Jaccard distance

两个集合中不同的元素占并集元素的比例

杰卡德距离是用来衡量两个集合差异性的指标, 是杰卡德相似系数的补集: \( 1 - J_{index}\).

杰卡德相似系数(杰卡德指数, Jaccard index) 衡量两个集合相似度的指标, 是两个集合交集元素占并集元素的比例, 由瑞士苏黎世联邦理工学院的植物学和植物生理学教授保罗·杰卡德(Paul Jaccard)提出。 假设A和B是两个集合, 二者的\(J_{index}\)定义为:

\(J(A,B) = \frac{|A∩B|}{|A∪B}\)

如果A,B都为空, 则J(A,B)=1

Rogers-Tanimoto distance

Chebyshev distance

Minkowski distance

Hamming distance

Cosine distance

Correlation distance

Chi-square distance

Kullback-Leibler divergence

Generalized Kullback-Leibler divergence

Rényi divergence

Jensen-Shannon divergence

Mahalanobis distance

Squared Mahalanobis distance

Bhattacharyya distance

Hellinger distance

Haversine distance

Spherical angle distance

Mean absolute deviation

Mean squared deviation

Root mean squared deviation

Normalized root mean squared deviation

Bray-Curtis dissimilarity

Bregman divergence

StringDistances.jl

https://github.com/matthieugomez/StringDistances.jl

Edit Distances

Q-gram distances

which compare the set of all substrings of length q in each string